#pragma once
#include "GenericDevice.h"
#include <iostream>
#ifdef _WIN32
  #include "windows.h"
#endif

//Keyboard process class
class cKeyboard : public cGenericDevice
{
  private:
    static const unsigned kuiInputChannelSize = 256; //Size of the keyboard state buffer
    bool mabInputBuffer[kuiInputChannelSize]; //Keyboard state buffer
    bool mbIsValid; //Flag to store the state of the initialization
    void KeyEventProc(unsigned int luiKey, bool lbPressed);
  public:
    cKeyboard() { mbIsValid = false; }
    void Init(void);      
    void Deinit(void);
    void Update(struct tInputState mState);
    float Check(unsigned luiEntry);
    bool IsValid(void);
};
